import java.util.PriorityQueue;
import java.util.Scanner;

public class day7 {
    /**
     * DP36 abb
     * https://www.nowcoder.com/practice/0a8bbf8b9b5b4280957849ef4f240f07?tpId=230&tqId=38957&ru=/exam/oj
     */
    public static void main3(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        char[] s = in.next().toCharArray();

        // 长度为3，使用dp
        long[] f = new long[26]; // 表示：更新前：[0,i-1]区间内，有多少个 _x
        // 表示：更新后：[0,i]区间内，有多少个 _x
        long[] g = new long[26]; // 表示：更新前：[0,i-1]区间内，有多少个x
        // 表示：更新后：[0,i]去区间内，有多少个x
        long ret = 0;
        for(int i = 0;i < n;i++) {
            int x = s[i] - 'a';
            ret += f[x]; // dp[i] = f[s[i] - 'a']

            f[x] = f[x] + i - g[x]; // 这个 更新后 = 更新前 + (i前面的所有字符的个数 - 更新前0~i-1之间有多少个x)
            g[x] = g[x] + 1; // 这个 更新后 = 更新前 + 1
        }

        System.out.println(ret);
    }




    /**
     * AB32 哈夫曼编码
     * https://www.nowcoder.com/practice/4c0419eb07c840ca8402e4f2a52cfd49?tpId=308&tqId=40489&ru=/exam/oj
     */
    public static void main2(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        // 创建一个小根堆，
        PriorityQueue<Long> heap = new PriorityQueue<>();

        // 将所有的数据放入小根堆中，每次都取出堆顶的两个数据，进行组成新的节点放入堆中
        while(n-- != 0) {
            long x = in.nextLong();
            heap.offer(x);
        }

        // 计算带权值的方法，在每次使用的进行加上对应的值
        long ret = 0;
        while(heap.size() > 1) {
            long t1 = heap.poll();
            long t2 = heap.poll();
            heap.offer(t1 + t2);
            ret += t1 + t2;
        }

        System.out.println(ret);
    }



    /**
     * HJ9 提取不重复的整数
     * https://www.nowcoder.com/practice/253986e66d114d378ae8de2e6c4577c1?tpId=37&tqId=21232&ru=/exam/oj
     */
    public static void main1(String[] args) {
        Scanner in = new Scanner(System.in);
        char[] s = in.next().toCharArray();
        boolean[] hash = new boolean[10];//标记0~9是否被打印过

        for(int i = s.length - 1;i >= 0;i--) {
            int x = (int)s[i] - '0';
            if(!hash[x]) {
                System.out.print(x);
                hash[x] = true;
            }
        }
    }
}

